31e35abba47ff03a8792ff4d5146cd6084f34c74,src/main/java/sonar/core/inventory/ContainerLargeInventory.java,ContainerLargeInventory,slotClick,#number#number#ClickType#EntityPlayer#,121

Before Change


								if (held.stackSize == 0) {
									player.inventory.setItemStack(null);
								}
								entity.getTileInv().slots[slotID] = entity.getTileInv().buildArrayList(clicked);
								return null;
							}
						}

After Change


						ItemStack stack = newStack.copy().setStackSize(toRemove).getFullStack();
						newStack.remove(stack);
						if (newStack.stored == 0) {
							entity.getTileInv().setLargeStack(slotID, null);
						}
						player.inventory.setItemStack(stack);
						entity.getTileInv().setLargeStack(slotID, newStack);
						return null;
					}
				} else if (held != null) {
					if (clicked == null || clicked.getItemStack() == null || clicked.getStackSize() == 0) {
						if (entity.getTileInv().isItemValidForSlot(slotID * entity.getTileInv().numStacks, held)) {
							entity.getTileInv().setLargeStack(slotID, new StoredItemStack(held));
							player.inventory.setItemStack(null);
							return null;
						}
					} else if (clicked != null && clicked.getItemStack() != null) {
						if (clicked.equalStack(held)) {
							int maxAdd = (int) Math.min((held.getMaxStackSize() * entity.getTileInv().numStacks) - clicked.getStackSize(), held.stackSize);
							if (maxAdd > 0) {
								StoredItemStack newStack = clicked.copy();
								newStack.add(new StoredItemStack(held).setStackSize(maxAdd));
								held.stackSize -= maxAdd;
								if (held.stackSize == 0) {
									player.inventory.setItemStack(null);
								}
								entity.getTileInv().setLargeStack(slotID, newStack);
								return null;
							}
						}